package com.power.ding.service;

import com.alibaba.fastjson2.JSONObject;
import com.plf.common.domain.PageDataResponse;
import com.power.ding.exception.DingException;
import com.power.ding.model.pageInfo.Di_todoPageInfo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

public interface SystemService {

	/**
	 * 获取新的access-token，并存入缓存
	 * @return access-token
	 */
	String loadAccessToken() throws DingException;

	/**
	 * 获取access-token，优先取缓存里的
	 * @return access-token
	 */
	String getAccessToken() throws DingException;

	/**
	 * 获取用户信息
	 * @param auth_code
	 */
	JSONObject getAppUser(String auth_code) throws DingException;

	/**
	 * 获取平台当前时间戳
	 * @return
	 */
	Long getTime() throws DingException;

	/**
	 * 发送消息
	 * @param id
	 * @return 统一消息平台中心的id
	 * @throws DingException
	 */
	String sendMessage(String id) throws DingException;

	/**
	 * 获取消息内容
	 * @param id
	 * @return
	 * @throws DingException
	 */
	JSONObject getMessage(String id) throws DingException;

	/**
	 * 发送待办
	 * @param id
	 * @return 统一待办平台中心的id
	 * @throws DingException
	 */
	void sendTodo(String id) throws DingException;

	/**
	 * 完成待办
	 * @param id
	 * @return
	 */
	JSONObject finishTodo(String id) throws DingException;

	/**
	 * 组装授权页面地址
	 * @param employeeCode
	 * @param redirect
	 * @return
	 */
	String getOpenAuthorizeUrl(String employeeCode, String redirect) throws DingException;

	/**
	 * 获取授权用户信息
	 * @param code
	 * @return
	 */
	JSONObject getOpenUser(String code) throws DingException;

	/**
	 * 根据id获取待办详情
	 * @param id
	 * @return
	 */
	Map<String, Object> getTodo(String id) throws DingException;

	/**
	 * 根据id删除待办
	 * @param id
	 * @return
	 */
	JSONObject delTodo(String id) throws DingException;
}
